package com.zsj.arithmetic.ListAndMap;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 返回数组中第三大的数，如果不存在，就返回最大的数
 * 思路:
 * 对传入数组进行冒泡排序
 */
public class ListDemo3 {
    public int returnThirdMax(int [] n){
        int length = n.length;
        if (n.length <2){
            int max = Math.max(n[0], n[length - 1]);
            return max;
        }

        long fri,sec,thr;
        fri=sec=thr=Long.MIN_VALUE;
        //初始化值范围
        for (int i = 0; i < n.length; i++) {

            int cu = n[i];
            if (cu ==fri || cu==sec){
                continue;
            }
            if (cu > fri){
                thr=sec;
                sec=fri;
                fri=cu;
                continue;
            }

            if (cu>sec){
                thr=sec;
                sec=cu;
                continue;
            }

            if (cu >thr){
                thr=cu;
            }
        }


        return thr ==Long.MIN_VALUE?(int)fri:(int)thr;
    }


}
